<?php

declare(strict_types=1);

namespace App\Helpers;

/**
 * Clase personalizada de GUMP.
 */
class GUMP extends \GUMP
{
    public function __construct()
    {
        parent::__construct('es');

        self::set_error_message('is_image', 'El campo {field} no es una imagen');
    }

    /**
     * Comprueba si un archivo es una imagen.
     */
    protected function validate_is_image(string $field, array $input, array $params, mixed $value = null): bool
    {
        if (! is_array($input[$field])) {
            return false;
        }

        if ($input[$field]['error'] === UPLOAD_ERR_NO_FILE) {
            return true;
        }

        return $input[$field]['error'] === UPLOAD_ERR_OK &&
            exif_imagetype($input[$field]['tmp_name']);
    }
}
